<!DOCTYPE html>
<script>
	// 随机生成字母 数字混合
	function generateRandomAlphaNum(len) {
		var rdmString = "";
		for (; rdmString.length < len; rdmString += Math.random().toString(36).substr(2));
		return rdmString.substr(0, len);
	}

	// getBoundingClientRect   &   getClientRects

	console.log(generateRandomAlphaNum(10))


	'([]+{})[++[[]][+[]]]+([++[++[[]][+[]]][+[]]][+[]]+[++[++[[]][+[]]][+[]]][+[]]+[++[++[[]][+[]]][+[]]][+[]])+([++[++[[]][+[]]][+[]]][+[]]+[++[++[[]][+[]]][+[]]][+[]]+[++[++[[]][+[]]][+[]]][+[]])+([++[++[[]][+[]]][+[]]][+[]]+[++[++[[]][+[]]][+[]]][+[]]+[++[++[[]][+[]]][+[]]][+[]])+([++[++[[]][+[]]][+[]]][+[]]+[++[++[[]][+[]]][+[]]][+[]]+[[++[[]][+[]]][+[]]][+[]])+([++[++[[]][+[]]][+[]]][+[]]+[++[++[[]][+[]]][+[]]][+[]])+([++[++[[]][+[]]][+[]]][+[]]+[++[++[[]][+[]]][+[]]][+[]]+[++[++[[]][+[]]][+[]]][+[]]+[++[++[[]][+[]]][+[]]][+[]])+([++[++[[]][+[]]][+[]]][+[]]+[++[++[[]][+[]]][+[]]][+[]]+[++[++[[]][+[]]][+[]]][+[]]+[++[++[[]][+[]]][+[]]][+[]])+([++[++[[]][+[]]][+[]]][+[]]+[[++[[]][+[]]][+[]]][+[]])'
	
	
	// 随机排序
	var numbers = [5, 458, 120, -215, 228, 400, 122205, -85411];
	numbers = numbers.sort(function() {
		return Math.random() - 0.5
	});

	// 闭包 保存了 this和 args 新函数中 可以继续沿用
	Function.prototype.curry = function() {
		var fn = this, args = Array.prototype.slice.call(arguments);
		return function() {
			return fn.apply(this, args.concat(
					Array.prototype.slice.call(arguments)));
		};
	};

	// 数组 最大最小
	var numbers = [5, 458, 120, -215, 228, 400, 122205, -85411];
	var maxInNumbers = Math.max.apply(Math, numbers);
	var minInNumbers = Math.min.apply(Math, numbers);

	// 阶段数组
	var myArray = [12, 222, 1000, 124, 98, 10];
	myArray.length = 4;
	// myArray will be equal to [12 , 222 , 1000 , 124].

	// 善用逗号
	var a = 0;
	var b = (a++, 99 );
	console.log(a);
	// a will be equal to 1
	console.log(b);
	// b is equal to 99

	// 数组 拼接
	var array1 = [12, "foo", {
		name : "Joe"
	}, -2458];
	var array2 = ["Doe", 555, 100];
	Array.prototype.push.apply(array1, array2);
	console.log(array2);

	// 解析
	function escapeHTML(text) {
		var replacements = {
			"<" : "& lt;",
			">" : "& gt;",
			"&" : "& amp;",
			"\"" : "& quot;"
		};
		return text.replace(/[<>&"]/g, function(character) {
			return replacements[character];
		});
	}
</script>